package com.hdoit.apollo.logical.stock.service;

import java.util.List;

import com.hdoit.apollo.logical.billing.model.Billing;
import com.hdoit.apollo.logical.stock.model.OutStock;
import com.hdoit.apollo.logical.stock.model.OutStockLogistics;
import com.hdoit.apollo.logical.stock.model.OutStockShow;
import com.hdoit.apollo.logical.viewmodel.stock.OutStockSearch;
import com.hdoit.apollo.logical.viewmodel.stock.SendOutGoodsInfo;
import com.tennetcn.data.dao.base.ISuperService;
import com.tennetcn.data.message.PagerModel;
/**
 * @author      humaoshu
 * @email       
 * @createtime  2018年04月02日 11:57:13
 * @comment
 */
public interface IOutStockService extends ISuperService<OutStock>{

	public boolean applyOutStock(OutStock outStock, List<OutStockShow> outStockShows);

	public OutStock queryModelById(String key);

	public boolean applyOutStockFahuo(OutStock outStock, List<OutStockShow> outStockShows,
			OutStockLogistics outStockLogistics);

	public boolean applyOutStockFahuoList(List<Billing> billings, OutStockLogistics outStockLogistics, String loginId,
			String loginName);

	public boolean deleteOsutStockByKey(String outStockId);

	public boolean applySendOutGoods(Billing billing, SendOutGoodsInfo sendOutGoodsInfo);


	public List<OutStock> queryListBySearch(OutStockSearch search);

	public boolean applyReturnPurchaseForPC(OutStock outStock);

	public List<OutStock> queryListMPForReturn(OutStockSearch search,
			PagerModel pagerModel);

	public OutStock queryModelBySee(String key);

	public int queryCountMPForReturn(OutStockSearch search);

	public boolean closeOutStock(OutStock outStock);

	public boolean submitModifySave(Billing billing, SendOutGoodsInfo sendOutGoodsInfo, String outStockId);

	public boolean affirmModifySave(OutStock outStock, OutStock outStockYuan, String endType);

	public boolean deleteOutStockData(String billingId);
	
	public boolean deleteOutStockShowData(String billingId);
	
	public boolean deleteOutStockCollocationData(String billingId);
}